package main

import (
	"fmt"
	"regexp"
	"strconv"
	"strings"
)

func main() {
	fmt.Print(myAtoi("+-2"))

}

func myAtoi(str string) int {

	if len(str) == 0 {
		return 0
	}

	str = strings.TrimSpace(str)

	reg := regexp.MustCompile("(^[\\+\\-0]*\\d+)\\D*")

	str = reg.FindString(str)

	fmt.Println(str)

	if len(str) == 0 {
		return 0
	}

	i64, err := strconv.ParseInt(str, 10, 64)

	if err != nil {
		panic(err)
	}
	if i64 > 2147483647 {
		return 2147483647
	}

	if i64 < -2147483648 {
		return -2147483648
	}
	return int(i64)
}
